1. Field of the Invention
The present invention relates generally to semiconductor memories and, more particularly, to non-volatile flash memories.
2. Description of Related Art
Non-volatile semiconductor memory devices are designed to maintain programmed information even in the absence of electrical power. Non-volatile memories in common use today include read-only memories (ROMs) that typically are programmed to store a fixed bit pattern at the time of manufacture and that cannot be reprogrammed subsequently. Programmable read-only memories (PROMs) are a form of field-programmable memory devices that can be programmed once by a PROM programmer. Erasable programmable read-only memories (EPROMs) are programmable like PROMs, but can also be erased, for example, by exposure to ultraviolet light that places all bits in the memory to a known state (e.g., a logic 1). Electrically erasable programmable read-only memories (EEPROMs) are similar to EPROMs except that individual stored bits can be erased electrically. A particular form of EEPROM, known as a flash memory, typically is erased in blocks, although flash memory cells can be programmed individually.
An individual flash memory cell normally is programmed by applying programming voltages to terminals of the device, which injects charge into a charge-trapping portion of the memory cell and modifies a threshold voltage Vt of the cell. When the Vt is programmable to a value in one of two distinguishable ranges, then the cell, which has been referred to as a single-level cell (SLC), is able to store one bit of data (e.g., “1” or “0”). It is common practice for an unprogrammed (i.e., erased) SLC to be considered as storing a data value of “1.”
A flash memory cell can be read by applying read voltages to the terminals of the device and detecting a level of current in a drain circuit, thereby inferring a value for the Vt of the cell. An erased or unprogrammed cell can have a Vt near zero volts, while the Vt of a programmed SLC might be 3 V, as an example. For such an SLC, applying a reading voltage of about zero to an unprogrammed cell is expected to result in a detectable drain current, corresponding to a stored data value of “1.” Applying the same reading voltage to a programmed cell typically results in no detectable drain current, corresponding to a stored data value of “0.”
Operation of an SLC as just described assumes that an erased cell has a threshold voltage near zero. Unfortunately, while erasing a cell ideally results in a near-zero threshold voltage, a cell may be over-erased in some instances, so that the threshold voltage can actually be negative. Programming an over-erased cell may result in a threshold voltage distribution that is displaced relative to a desired level, which displacement is a potential source of error when reading data from the memory.
A need thus exists in the prior art for methods and apparatus suitable for avoiding errors when reading over-erased cells in flash memories.